// 引入获取首页数据的api
import { getHomeInfo, getplayinfo, getshareinfo, getelseinfo } from '@/api/index'
const state = {
  worksDatahome: [], //首页综合模块的数据
  worksDataplay: [], //首页一起玩模块的数据
  worksDatashare: [], //首页每日分享模块的数据
  worksDataelse: [] //首页其他模块的数据
}
const mutations = {
  // 获取综合模块的处理函数
  GETHOMEINFO(state, data) {
    state.worksDatahome = data
  },
  // 获取综合模块更多数据的处理函数
  GETHOMEINFOMORE(state, data) {
    data.forEach(item => {
      state.worksDatahome.push(item)
    })
  },
  // 获取一起玩模块的数据的处理函数
  GETPLAYINFO(state, data) {
    state.worksDataplay = data
  },
  GETPLAYINFOMORE(state, data) {
    data.forEach(item => {
      state.worksDataplay.push(item)
    })
  },
  // 每日分享
  GETSHAREINFO(state, data) {
    state.worksDatashare = data
  },
  GETSHAREINFOMORE(state, data) {
    data.forEach(item => {
      state.worksDatashare.push(item)
    })
  },
  // 其他
  GETELSEINFO(state, data) {
    state.worksDataelse = data
  },
  GETELSEINFOMORE(state, data) {
    data.forEach(item => {
      state.worksDataelse.push(item)
    })
  }
}
const actions = {
  // 获取首页综合模块的数据
  async gethomeinfo({ commit }, num) {
    let result = await getHomeInfo(num)
    // 判断
    if (result.code === 200) {
      result.data.forEach((item) => {
        if (item.pic_walls) {
          item.pic_walls = item.pic_walls.split("___");
        }
      });
      // 判断num是否为零，也就是判断是不是第一次获取数据 第一次应该直接赋值，其他应该push
      if (num === 0) {
        commit('GETHOMEINFO', result.data)
      } else {
        commit('GETHOMEINFOMORE', result.data)
      }
      // 判断获取到的值是否为5，如果不满5说明没有值了 提醒用户
      if (result.data.length < 5) {
        return { result: false, message: '已经没有更多数据了哦' }
      } else {
        return { result: true }
      }
    } else {
      // 失败的回调
      return { result: false, message: result.message }
    }
  },
  // 获取一起玩板块信息
  async getplayinfo({ commit }, num) {
    let result = await getplayinfo(num)
    // 判断
    if (result.code === 200) {
      result.data.forEach((item) => {
        if (item.pic_walls) {
          item.pic_walls = item.pic_walls.split("___");
        }
      });
      // 判断num是否为零，也就是判断是不是第一次获取数据 第一次应该直接赋值，其他应该push
      if (num === 0) {
        commit('GETPLAYINFO', result.data)
      } else {
        commit('GETPLAYINFOMORE', result.data)
      }
      // 判断获取到的值是否为5，如果不满5说明没有值了 提醒用户
      if (result.data.length < 5) {
        return { result: false, message: '已经没有更多数据了哦' }
      } else {
        return { result: true }
      }
    } else {
      // 失败的回调
      return { result: false, message: result.message }
    }
  },
  // 每日分享
  async getshareinfo({ commit }, num) {
    let result = await getshareinfo(num)
    // 判断
    if (result.code === 200) {
      result.data.forEach((item) => {
        if (item.pic_walls) {
          item.pic_walls = item.pic_walls.split("___");
        }
      });
      // 判断num是否为零，也就是判断是不是第一次获取数据 第一次应该直接赋值，其他应该push
      if (num === 0) {
        commit('GETSHAREINFO', result.data)
      } else {
        commit('GETSHAREINFOMORE', result.data)
      }
      // 判断获取到的值是否为5，如果不满5说明没有值了 提醒用户
      if (result.data.length < 5) {
        return { result: false, message: '已经没有更多数据了哦' }
      } else {
        return { result: true }
      }
    } else {
      // 失败的回调
      return { result: false, message: result.message }
    }
  },
  async getelseinfo({ commit }, num) {
    let result = await getelseinfo(num)
    // 判断
    if (result.code === 200) {
      result.data.forEach((item) => {
        if (item.pic_walls) {
          item.pic_walls = item.pic_walls.split("___");
        }
      });
      // 判断num是否为零，也就是判断是不是第一次获取数据 第一次应该直接赋值，其他应该push
      if (num === 0) {
        commit('GETELSEINFO', result.data)
      } else {
        commit('GETELSEINFOMORE', result.data)
      }
      // 判断获取到的值是否为5，如果不满5说明没有值了 提醒用户
      if (result.data.length < 5) {
        return { result: false, message: '已经没有更多数据了哦' }
      } else {
        return { result: true }
      }
    } else {
      // 失败的回调
      return { result: false, message: result.message }
    }
  }
}
const getters = {}

export default {
  state,
  mutations,
  actions,
  getters
}